5. Python time 相关模块

1. time 模块相关格式

  1. 时间戳 timestamp:指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数,是一长串浮点数, 如1578779580.0
  2. struct_time 元组结构的时间:用元组表示时间的格式,如time.gmtime( ) 表示 UTC 的时间, 像time.struct_time(tm_year=2020, tm_mon=12, tm_mday=01, tm_hour=16, tm_min=32, tm_sec=38, tm_wday=1, tm_yday=151, tm_isdst=0),而time.localtime( )为 UTC+8 的时间, 相差8个小时。
  3. format string 字符串格式的时间: 字符串格式的时间( 可自定义格式 ),如 2020-12-01 00:32:38

这三者之间是可以相互转换的。

  1. timestampstruct_time:

    1
    2
    gmtime = time.gmtime(timestamp) #转UTC
    localtime = time.localtime(timestamp)#转北京时间
  2. struct_timetimestamp, 用time.mktime(struct_time).

  3. timestampformat string, 用time.ctime(timestamp).

  4. struct_timeformat string, 用time.strftime('%Y-%m-%d %X', localtime).

  5. format stringstruct_time , 用time.strptime("02 Nov 22", "%d %b %y")或者time.strptime("02/11/2020 5:53","%m/%d/%Y %H:%M").

注意:format string和 时间戳是不能直接转的, 要两步 time.mktime(time.strptime("12/02/2020", "%d/%m/%Y"))

具体转换如下。

image-20220609203049567

还有个也是设置时间格式就是在logging要设置DATE_FORMAT。

1
2
3
4
LOG_FORMAT = "%(asctime)s - %(levelname)s - %(message)s"
DATE_FORMAT = "%m/%d/%Y %H:%M:%S %p"

logging.basicConfig(filename='my.log', level=logging.DEBUG, format=LOG_FORMAT, datefmt=DATE_FORMAT)

Infer

[1] Python时间time模块的使用